Release v0.12.0 - #137
Open
esto-openscan wants to merge 23 commits into
Open
Conversation
fix: add Raspberry Pi 3 support to device manifests and OS sublists
- Skipped internal V4L2 pipeline devices during LinuxPy camera detection. - Fix picamera2 setting application on Raspberry Pi 5. - Updated diagnostics script. - Added temporary release of camera controllers to support external probes in diagnostics. - Enhanced unit tests to validate new diagnostic and configuration behaviors.
fix(camera): improve Raspberry Pi 5 camera detection and diagnostics
… to `hello_world_progress_task` - Updated task name and functionality to align with the canonical async progress-reporting pattern. - Simplified and removed outdated task implementations. - Adjusted task registration, router methods, and documentation to reference `hello_world_progress_task`. - Updated test cases to reflect the new structure and name.
refactor(example_tasks): clarification improvement
…124) * fix(scan): await photo save so motor moves don't overlap encode/save Each captured photo was saved fire-and-forget via asyncio.create_task(self._ctx.project_manager.add_photo_async(photo_data)) in ScanTask._capture_photos_at_position (both the single-photo and focus-stacking branches), and the loop advanced to the next motors.move_to_point() without awaiting it. The detached save (JPEG write + metadata + _recalculate_and_save_scan_size, an os.walk over the growing scan dir) runs in the default ThreadPoolExecutor and overlaps the motor's software time.sleep-timed GPIO step loop in MotorController._executor. The two contend for CPU, step intervals overrun, and steps drop. On an open-loop rig with no endstop this drifts the position estimate by degrees, breaking homing and risking over-travel. Await the save instead, serializing move -> capture -> save -> next move so the motor only steps while the Pi is idle. Verified on an OpenScan Mini (greenshield, IMX519, v0.11.4): audible scan growl gone, scans complete, homing holds across runs. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * chore(scan): shorten photo save comments --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Co-authored-by: esto <esto@openscan.eu>
- Replaced `photo` with `photo_async` in `ScanTask` for asynchronous photo capture. - Adjusted related test cases to mock and verify `photo_async` instead of `photo`. - Ensured proper await usage for improved performance and stability during scan operations.
- Replaced `photo` with `photo_async` in `ScanTask` for asynchronous photo capture. - Adjusted related test cases to mock and verify `photo_async` instead of `photo`. - Ensured proper await usage for improved performance and stability during scan operations.
…istry - Moved built-in core task definitions to a new `BUILTIN_TASKS` registry for centralized task management. - Updated `initialize_core_tasks` to retrieve task definitions from the registry instead of hardcoded lists. - Improved task validation to ensure uniqueness and explicit task names. - Adjusted documentation and tests to align with the new registry-based approach.
feat(packaging): ship firmware as a Debian-managed runtime - add Debian packaging with versioned releases, bundled wheelhouse installation, isolated virtual environments, and release metadata - install and enable the production systemd service with robust shutdown and hardware cleanup behavior - preserve runtime configuration across upgrades and seed missing default settings without replacing device-specific state - delegate nginx and system-level integration to openscan3-system-config - expose guarded system update, healthcheck, log, apply, and repair operations through the firmware API and openscan-updater CLI - include camera diagnostics and packaging, migration, and API test coverage - prepare the firmware runtime for the 0.12.0 APT-based release
…d-task-registry # Conflicts: # docs/ARCHITECTURE.md
…istry Simplify task registry and improve documentation, also regenerate openapi specs
…re (#135) * refactor(update_api): simplify endpoints and improve response structure - Introduced `read_user_update_status` and `refresh_user_update_status` for streamlined status handling. - Removed unused endpoints (`/logs`, `/healthcheck`, `/openscan`). - Consolidated error handling and standardized payload structure for clearer API responses. - Added a compact cached update status (`update_status`) to the updater commands for faster status retrieval. - Updated tests to reflect endpoint changes and new response structures. * refactor(update_api): add explicit response schemas and regenerate OpenAPI specs - Defined `UpdateStatusResponse`, `UpdateInstallResponse`, `SystemUpdateSummary`, and `OpenScanUpdate*` schemas to improve response clarity. - Updated `/status`, `/check`, and `/apply` endpoints to explicitly use response models. - Regenerated OpenAPI specs (`openapi_v0.9.json`, `openapi_latest.json`, `openapi_next.json`) to reflect schema updates. - Enhanced test coverage for response model validation in update endpoint tests.
…s` endpoint - Added `AvailableConfigResponse` and `AvailableConfigsResponse` models for consistent and clear API responses. - Updated OpenAPI schema with references to the new response models. - Enhanced tests to validate OpenAPI response schema and structure.
- Defined explicit response schema (`application/zip`) for the `/logs/archive` endpoint. - Updated OpenAPI spec to reflect the response format and metadata. - Extended tests to validate the new binary response handling.
…n `/next/projects` endpoints
- Introduced `ProjectCreateRequest` and `ScanCreateRequest` models for consistent JSON payload validation.
- Updated `/next/projects` and `/next/projects/{project_name}/scan` endpoints to require JSON request bodies.
- Regenerated OpenAPI specifications to reflect the new request body schema.
- Enhanced tests to validate the new JSON request handling and OpenAPI changes.
Fix API inconsistencies
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR creates release v0.12.0
Notable changes:
nextrouters only).